/*!
\file AlgBellmanFord.h
\brief Contains declaration of AlgBellmanFord.
*/

#ifndef ALGBELLMANFORD_H
#define ALGBELLMANFORD_H

#include<Algorithm.h>
#include<ContainerElement.h>

/*!
\class AlgBellmanFord
\brief Implements algorithm of Bellman-Ford.
*/

class AlgBellmanFord: public Algorithm{
public:
	AlgBellmanFord( Graph *h );
	//!< Constructor
	~AlgBellmanFord();
	//!< Destructor
	void run();
	//!< Algorithm is executed here.
private:
	Container &c(){ return container(0); }
	double distance(const Node &n);
	double weight(const Edge &e);
	void setData( const Node &n, double d, const Edge &e );
};

#endif

